<?php

namespace Sim\SimBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Producto
 *
 * @ORM\Table(name="producto")
 * @ORM\Entity
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="discriminator", type="string")
 * @ORM\DiscriminatorMap({"producto" = "Producto", "producto_empresa" = "Sim\SimBundle\Entity\ProductoEmpresa"})
 */
class Producto extends Perfil
{

    /**
     * @var integer
     *
     * @ORM\ManyToOne(targetEntity="Sim\SimBundle\Entity\Sector")
     * @ORM\JoinColumn(name="sector", referencedColumnName="id")
     */
    private $sector;

    /**
     * @var float
     *
     * @ORM\Column(name="precio", type="float")
     */
    private $precio;

    /**
     * @var string
     *
     * @ORM\Column(name="licencias", type="string", length=255)
     */
    private $licencias;

    /**
     * @var string
     *
     * @ORM\Column(name="funcionalidades", type="text")
     */
    private $funcionalidades;

    /**
     * @var boolean
     *
     * @ORM\Column(name="privado", type="boolean")
     */
    private $privado;

    /**
     * @var string
     *
     * @ORM\Column(name="rendimiento", type="text")
     */
    private $rendimiento;

    /**
     * @var string
     *
     * @ORM\Column(name="fiabilidad", type="text")
     */
    private $fiabilidad;

    /**
     * @var string
     *
     * @ORM\Column(name="portablidad", type="text")
     */
    private $portablidad;

    /**
     * @var string
     *
     * @ORM\Column(name="usabilidad", type="text")
     */
    private $usabilidad;

    /**
     * @var string
     *
     * @ORM\Column(name="establidad", type="text")
     */
    private $establidad;

    /**
     * @var string
     *
     * @ORM\Column(name="soporte", type="text")
     */
    private $soporte;

    /**
     * @var string
     *
     * @ORM\Column(name="garantias", type="text")
     */
    private $garantias;

    /**
     * @var string
     *
     * @ORM\Column(name="tecnologias_uso", type="text")
     */
    private $tecnologiasUso;

    /**
     * @var string
     *
     * @ORM\Column(name="calidad", type="text")
     */
    private $calidad;

    /**
     * @var string
     *
     * @ORM\Column(name="prestaciones", type="text")
     */
    private $prestaciones;

    /**
     * @var string
     *
     * @ORM\Column(name="caracteristicas", type="text")
     */
    private $caracteristicas;

    /**
     * @var string
     *
     * @ORM\Column(name="beneficios", type="text")
     */
    private $beneficios;

    /**
     * @var string
     *
     * @ORM\Column(name="requerimientos_tec_func", type="text")
     */
    private $requerimientosTecFunc;

    /**
     * @var string
     *
     * @ORM\Column(name="comport_prod", type="text")
     */
    private $comportProd;

    /**
     * @var string
     *
     * @ORM\Column(name="mercados", type="text")
     */
    private $mercados;

    /**
     * @var string
     *
     * @ORM\Column(name="patente", type="text")
     */
    private $patente;

    /**
     * @var string
     *
     * @ORM\Column(name="distribuidor", type="text")
     */
    private $distribuidor;

    /**
     * @var string
     *
     * @ORM\Column(name="registro", type="text")
     */
    private $registro;

    /**
     * @var string
     *
     * @ORM\Column(name="restricciones_legales", type="text")
     */
    private $restriccionesLegales;

    /**
     * @var string
     *
     * @ORM\Column(name="certificaciones", type="text")
     */
    private $certificaciones;

    /**
     * Set sector
     *
     * @param \Sim\SimBundle\Entity\Sector $sector
     * @return Producto
     */

    public function setSector(\Sim\SimBundle\Entity\Sector $sector)
    {
        $this->sector = $sector;

        return $this;
    }

    /**
     * Get sector
     *
     * @return integer
     */
    public function getSector()
    {
        return $this->sector;
    }

    /**
     * Set precio
     *
     * @param float $precio
     * @return producto
     */
    public function setPrecio($precio)
    {
        $this->precio = $precio;
    
        return $this;
    }

    /**
     * Get precio
     *
     * @return float 
     */
    public function getPrecio()
    {
        return $this->precio;
    }

    /**
     * Set licencias
     *
     * @param string $licencias
     * @return producto
     */
    public function setLicencias($licencias)
    {
        $this->licencias = $licencias;
    
        return $this;
    }

    /**
     * Get licencias
     *
     * @return string 
     */
    public function getLicencias()
    {
        return $this->licencias;
    }

    /**
     * Set funcionalidades
     *
     * @param string $funcionalidades
     * @return producto
     */
    public function setFuncionalidades($funcionalidades)
    {
        $this->funcionalidades = $funcionalidades;
    
        return $this;
    }

    /**
     * Get funcionalidades
     *
     * @return string 
     */
    public function getFuncionalidades()
    {
        return $this->funcionalidades;
    }

    /**
     * Set privado
     *
     * @param boolean $privado
     * @return producto
     */
    public function setPrivado($privado)
    {
        $this->privado = $privado;
    
        return $this;
    }

    /**
     * Get privado
     *
     * @return boolean 
     */
    public function getPrivado()
    {
        return $this->privado;
    }

    /**
     * Set rendimiento
     *
     * @param string $rendimiento
     * @return producto
     */
    public function setRendimiento($rendimiento)
    {
        $this->rendimiento = $rendimiento;
    
        return $this;
    }

    /**
     * Get rendimiento
     *
     * @return string 
     */
    public function getRendimiento()
    {
        return $this->rendimiento;
    }

    /**
     * Set fiabilidad
     *
     * @param string $fiabilidad
     * @return producto
     */
    public function setFiabilidad($fiabilidad)
    {
        $this->fiabilidad = $fiabilidad;
    
        return $this;
    }

    /**
     * Get fiabilidad
     *
     * @return string 
     */
    public function getFiabilidad()
    {
        return $this->fiabilidad;
    }

    /**
     * Set portablidad
     *
     * @param string $portablidad
     * @return producto
     */
    public function setPortablidad($portablidad)
    {
        $this->portablidad = $portablidad;
    
        return $this;
    }

    /**
     * Get portablidad
     *
     * @return string 
     */
    public function getPortablidad()
    {
        return $this->portablidad;
    }

    /**
     * Set usabilidad
     *
     * @param string $usabilidad
     * @return producto
     */
    public function setUsabilidad($usabilidad)
    {
        $this->usabilidad = $usabilidad;
    
        return $this;
    }

    /**
     * Get usabilidad
     *
     * @return string 
     */
    public function getUsabilidad()
    {
        return $this->usabilidad;
    }

    /**
     * Set establidad
     *
     * @param string $establidad
     * @return producto
     */
    public function setEstablidad($establidad)
    {
        $this->establidad = $establidad;
    
        return $this;
    }

    /**
     * Get establidad
     *
     * @return string 
     */
    public function getEstablidad()
    {
        return $this->establidad;
    }

    /**
     * Set soporte
     *
     * @param string $soporte
     * @return producto
     */
    public function setSoporte($soporte)
    {
        $this->soporte = $soporte;
    
        return $this;
    }

    /**
     * Get soporte
     *
     * @return string 
     */
    public function getSoporte()
    {
        return $this->soporte;
    }

    /**
     * Set garantias
     *
     * @param string $garantias
     * @return producto
     */
    public function setGarantias($garantias)
    {
        $this->garantias = $garantias;
    
        return $this;
    }

    /**
     * Get garantias
     *
     * @return string 
     */
    public function getGarantias()
    {
        return $this->garantias;
    }

    /**
     * Set tecnologiasUso
     *
     * @param string $tecnologiasUso
     * @return producto
     */
    public function setTecnologiasUso($tecnologiasUso)
    {
        $this->tecnologiasUso = $tecnologiasUso;
    
        return $this;
    }

    /**
     * Get tecnologiasUso
     *
     * @return string 
     */
    public function getTecnologiasUso()
    {
        return $this->tecnologiasUso;
    }

    /**
     * Set calidad
     *
     * @param string $calidad
     * @return producto
     */
    public function setCalidad($calidad)
    {
        $this->calidad = $calidad;
    
        return $this;
    }

    /**
     * Get calidad
     *
     * @return string 
     */
    public function getCalidad()
    {
        return $this->calidad;
    }

    /**
     * Set prestaciones
     *
     * @param string $prestaciones
     * @return producto
     */
    public function setPrestaciones($prestaciones)
    {
        $this->prestaciones = $prestaciones;
    
        return $this;
    }

    /**
     * Get prestaciones
     *
     * @return string 
     */
    public function getPrestaciones()
    {
        return $this->prestaciones;
    }

    /**
     * Set caracteristicas
     *
     * @param string $caracteristicas
     * @return producto
     */
    public function setCaracteristicas($caracteristicas)
    {
        $this->caracteristicas = $caracteristicas;
    
        return $this;
    }

    /**
     * Get caracteristicas
     *
     * @return string 
     */
    public function getCaracteristicas()
    {
        return $this->caracteristicas;
    }

    /**
     * Set beneficios
     *
     * @param string $beneficios
     * @return producto
     */
    public function setBeneficios($beneficios)
    {
        $this->beneficios = $beneficios;
    
        return $this;
    }

    /**
     * Get beneficios
     *
     * @return string 
     */
    public function getBeneficios()
    {
        return $this->beneficios;
    }

    /**
     * Set requerimientosTecFunc
     *
     * @param string $requerimientosTecFunc
     * @return producto
     */
    public function setRequerimientosTecFunc($requerimientosTecFunc)
    {
        $this->requerimientosTecFunc = $requerimientosTecFunc;
    
        return $this;
    }

    /**
     * Get requerimientosTecFunc
     *
     * @return string 
     */
    public function getRequerimientosTecFunc()
    {
        return $this->requerimientosTecFunc;
    }

    /**
     * Set comportProd
     *
     * @param string $comportProd
     * @return producto
     */
    public function setComportProd($comportProd)
    {
        $this->comportProd = $comportProd;
    
        return $this;
    }

    /**
     * Get comportProd
     *
     * @return string 
     */
    public function getComportProd()
    {
        return $this->comportProd;
    }

    /**
     * Set mercados
     *
     * @param string $mercados
     * @return producto
     */
    public function setMercados($mercados)
    {
        $this->mercados = $mercados;
    
        return $this;
    }

    /**
     * Get mercados
     *
     * @return string 
     */
    public function getMercados()
    {
        return $this->mercados;
    }

    /**
     * Set patente
     *
     * @param string $patente
     * @return producto
     */
    public function setPatente($patente)
    {
        $this->patente = $patente;
    
        return $this;
    }

    /**
     * Get patente
     *
     * @return string 
     */
    public function getPatente()
    {
        return $this->patente;
    }

    /**
     * Set distribuidor
     *
     * @param string $distribuidor
     * @return producto
     */
    public function setDistribuidor($distribuidor)
    {
        $this->distribuidor = $distribuidor;
    
        return $this;
    }

    /**
     * Get distribuidor
     *
     * @return string 
     */
    public function getDistribuidor()
    {
        return $this->distribuidor;
    }

    /**
     * Set registro
     *
     * @param string $registro
     * @return producto
     */
    public function setRegistro($registro)
    {
        $this->registro = $registro;
    
        return $this;
    }

    /**
     * Get registro
     *
     * @return string 
     */
    public function getRegistro()
    {
        return $this->registro;
    }

    /**
     * Set restriccionesLegales
     *
     * @param string $restriccionesLegales
     * @return producto
     */
    public function setRestriccionesLegales($restriccionesLegales)
    {
        $this->restriccionesLegales = $restriccionesLegales;
    
        return $this;
    }

    /**
     * Get restriccionesLegales
     *
     * @return string 
     */
    public function getRestriccionesLegales()
    {
        return $this->restriccionesLegales;
    }

    /**
     * Set certificaciones
     *
     * @param string $certificaciones
     * @return producto
     */
    public function setCertificaciones($certificaciones)
    {
        $this->certificaciones = $certificaciones;
    
        return $this;
    }

    /**
     * Get certificaciones
     *
     * @return string 
     */
    public function getCertificaciones()
    {
        return $this->certificaciones;
    }
}
